假設,你今天寫了一個頁面或是儲存了一些簡單的狀態或資訊,call了另外一個API或是跳轉到不同頁面並且想要保持剛才的資訊或是狀態呢?
也許你該考慮看看session。
https://github.com/wilsonsujames/flask_tutorial/blob/main/Flask_with_session/app.py
from flask import Flask, session, redirect, url_for, request,jsonify
import os
app = Flask(__name__)
app.secret_key = os.urandom(20)
@app.route('/')
def index():
session['username'] ='bob'
session['weight'] ='60kg'
session['height'] ='172cm'
return jsonify({'status':'using session success'})
@app.route('/getinfo')
def getinfo():
print(session)
# 這裡可以發現session資料為字典型態
username=session.get('username')
weight=session.get('weight')
height=session.get('height')
return jsonify({'username':username,'weight':weight,'height':height})
if __name__ == '__main__':
app.run(debug=True, port=8591)
執行之後我們到達根路由可以看到回傳的json資訊,到達localhost:8591/getinfo可以看見回傳了儲存於session的資訊,我們也把session印出來了,可以發現session為字典的型態。
假設要去除某個session資訊,我們也可以:
session['xxx'] = False
是的,未來跳轉頁面時,你可以將特定資訊保留下來,以執行你app的功能了。
注意
請勿將重要資訊,像是會員密碼儲存於session。另外在生產模式可以將secrect key利用export(linux)、set(windows)來設定還境變數,再利用os.environ.get來獲取環境變數的值。
import os
SECRET_KEY = os.environ.get("SECRET_KEY")